package com.qunar.mina.app.service;

import java.util.List;

import org.apache.lucene.index.Term;

import com.qunar.wireless.ugc.qcfclient.dto.Address;
import com.qunar.wireless.ugc.qcfclient.dto.QueryResult;

public interface SearcherService {

	/***
	 * 对address表执行创建索引库
	 */
	public void createIndex();

	/***
	 * 将新添加的document放置到增量索引库中
	 * @param doc 新添加的document
	 */
	public void addIndex(Address address, String writerName);
	
	/**
	 * 批量创建索引 集合超过50条不做任何操作
	 * @param list
	 * @param writerName
	 */
	public void batchaddIndex(List<Address> list);

	/**
	 * 删除索引
	 * @param term
	 */
	public void deleteIndex(Term term, String writerName);
	
	/**
	 * 模糊匹配查询 
	 *
	 */
	public QueryResult fuzzySearcher(String keyword, Integer firstResult,
			Integer maxResult, String field);
	
	/**
	 * 通配符查询
	 * 
	 */
	public QueryResult wildcardSearcher(String keyword, Integer firstResult,
			Integer maxResult, String field);
	
	public QueryResult searcherScan(String keyword, Integer firstResult,
			Integer maxResult, String searcherName,
			String... fields);
	
	/**
	 * 检索
	 * @param keyword 关键字
	 * @param firstResult 开始下标
	 * @param maxResult  最大返回数量
	 * @param fields 查询字段
	 * @return
	 */
	public QueryResult searcher(String keyword, Integer firstResult,
			Integer maxResult, String searcherName, String... fields);


}